//
//  LecturesConsole.cpp
//  Machette_Exemple
//
//  Created by Maxime Britto on 23/02/11.
//  Copyright 2011 Logimax. All rights reserved.
//

#include "stdafx.h"
#include "LecturesConsole.h"
#include <iostream>
#include <string>
#include <sstream>

using namespace std;

double saisirDouble()
{
    string input;
    double myNumber = 0;
    bool saisieInvalide = false;
    do {
        getline(cin, input);
        
        // This code converts from string to number safely.
        stringstream myStream(input);
        if ((myStream >> myNumber) == NULL) {
            saisieInvalide = true;
            cout << "\nNombre non valide, entrez un nombre réel" << endl;
        } else {
            saisieInvalide = false;
        }
        
    } while (saisieInvalide);
    
    return myNumber;

}

int saisirEntier()
{
    string input;
    int myNumber = 0;
    bool saisieInvalide = false;
    do {
        getline(cin, input);
        
        // This code converts from string to number safely.
        stringstream myStream(input);
        if ((myStream >> myNumber) == NULL) {
            saisieInvalide = true;
            cout << "\nNombre non valide, entrez un nombre entier" << endl;
        } else {
            saisieInvalide = false;
        }
    } while (saisieInvalide);
    
    return myNumber;
}

std::string saisirTexte()
{
    string input;
    
    getline(cin, input);
    
    return input;
}
